package com.humble.vichatbackend.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.humble.vichatbackend.common.*;
import com.humble.vichatbackend.mapper.TeamMapper;
import com.humble.vichatbackend.model.domain.Team;
import com.baomidou.mybatisplus.extension.service.IService;
import com.humble.vichatbackend.model.vo.UserTeamVO;
import com.humble.vichatbackend.model.vo.UserVO;

import jakarta.annotation.Resource;
import java.util.List;

/**
* @author che
* @description 针对表【team(队伍)】的数据库操作Service
* @createDate 2025-07-22 10:04:28
*/
public interface TeamService extends IService<Team> {

    public Long addTeam(TeamAddRequest teamAddRequest, UserVO currentUser);

    public Boolean updateTeam(TeamUpdateRequest teamUpdateRequest, UserVO currentUser);

    public List<UserTeamVO> listTeams(TeamQueryRequest teamQueryRequest, Boolean isAdmin,Long currentUserId);

    public Boolean joinTeam(TeamJoinRequest teamJoinRequest, UserVO currentUser);

    public Boolean quitTeam(TeamQuitRequest teamQuitRequest, UserVO currentUser);

    public Boolean deleteTeam(Long id, UserVO currentUser);

    public Page<Team> listTeamsByPage(TeamQueryRequest teamQueryRequest, Boolean isAdmin, Long currentUserId);
}
